#include <iostream>
using namespace std;
#include <list>

int main(int argc, const char *argv[]){
    // 使用list实例化对象
    list<int> my_list;

    cout << my_list.size() << endl; // 0
    cout << boolalpha;
    cout << my_list.empty() << endl; // true

    my_list.push_back(10);
    my_list.push_back(20);
    my_list.push_front(30);
    my_list.push_front(40);
    cout << my_list.size() << endl; // 4
    cout << my_list.empty() << endl; // false

    // 遍历
    list<int>::iterator my_iter;
    for(my_iter = my_list.begin(); my_iter != my_list.end(); my_iter++){
        cout << *my_iter << " ";
    }
    cout << endl;
    // 40 30 10 20

    my_list.pop_back();
    my_list.pop_front();
    // 遍历
    for(my_iter = my_list.begin(); my_iter != my_list.end(); my_iter++){
        cout << *my_iter << " ";
    }
    cout << endl;
    // 30 10

    my_list.push_back(40);
    my_list.push_back(70);
    my_list.push_back(60);
    my_list.push_back(50);
    // 遍历
    for(my_iter = my_list.begin(); my_iter != my_list.end(); my_iter++){
        cout << *my_iter << " ";
    }
    cout << endl;
    // 30 10 40 70 60 50 

    // 排序
    my_list.sort();
    // 遍历
    for(my_iter = my_list.begin(); my_iter != my_list.end(); my_iter++){
        cout << *my_iter << " ";
    }
    cout << endl;
    // 10 30 40 50 60 70

    // 翻转
    my_list.reverse();
    // 遍历
    for(my_iter = my_list.begin(); my_iter != my_list.end(); my_iter++){
        cout << *my_iter << " ";
    }
    cout << endl;
    // 70 60 50 40 30 10

    // 清空
    my_list.clear();
    cout << my_list.size() << endl; // 0
    cout << my_list.empty() << endl; // true

    return 0;
}